farmterritoryfandomcom_ru-20200215-history
Модуль:Tree
local p = {} local arrData = mw.loadData( 'Module:DataTree' ) local common = require( "Module:Common" ) local id = "" local tp = "" local nameprod = "" --Список деревьев--* function p.list(frame) tp = frame.args1 local root = common.getCreateTable() local arrHeadTable={ 'Уровень', 'Название', 'Покупка ', 'Плоды', 'Продажа 15px', 'Рост, часы', 'Доход в час 15px', } if tp "all" then arrHeadTable#arrHeadTable+1='Категория' end arrHeadTable#arrHeadTable+1='Локация' arrHeadTable#arrHeadTable+1='Домик агронома' root: node(common.getCreateHeadTable(arrHeadTable)) local data=getitems() local width=50 local j=0 for i, v in ipairs(data) do if tp 'all'or v.tp tp then trbody =root:tag('tr') trbody:tag('td') :css('text-align', "center") :css('width', width+2) :wikitext(v.level..''..width..'px|center') trbody:tag('td') :wikitext(''..v.name..'') trbody:tag('td') :css('text-align', 'center') :wikitext(v.buy) trbody:tag('td') :css('text-align', 'center') :wikitext(v.prod) trbody:tag('td') :css('text-align', 'center') :wikitext(v.sell) trbody:tag('td') :css('text-align', 'center') :wikitext(v.tm) trbody:tag('td') :css('text-align', 'center') :wikitext(v.rez) if tp "all" then trbody:tag('td') :wikitext(''..v.tp..'') end trbody:tag('td') :wikitext(v.location) trbody:tag('td') :wikitext(v.agronom) j=j+1 end end local caption = root:tag('caption') :css('text-align', 'left') :wikitext("Всего: "..j) return tostring( root ) end function infobox() local root = mw.html.create( 'div' ) :addClass('infobox-crop') root:tag('div') :addClass('infobox-crop-h') :wikitext(id) root:tag('div') :attr('id','img-tree') :wikitext('center') local div1=root:tag('div') local item1_1=div1:tag('div') :addClass('item-spacing') :addClass('item-border') item1_1:tag('div') :addClass('item-label') :wikitext('Категория') item1_1:tag('div') :addClass('item-data') :wikitext('[['..arrDataid.tp..']]') local item1_2=div1:tag('div') :addClass('item-spacing') :addClass('item-border') item1_2:tag('div') :addClass('item-label') :wikitext('Продукт') item1_2:tag('div') :addClass('item-data') :wikitext(arrDataid.nameprod and arrDataid.nameprod or id) local item1_3=div1:tag('div') :addClass('item-spacing') :addClass('item-border') item1_3:tag('div') :addClass('item-label') :wikitext('Рост, часы') item1_3:tag('div') :addClass('item-data') :wikitext(arrDataid.tm..' ��') local item1_4=div1:tag('div') :addClass('item-spacing') :addClass('item-border') item1_4:tag('div') :addClass('item-label') :wikitext('Локация') item1_4:tag('div') :addClass('item-data') :wikitext(arrDataid.location and '[['..arrDataid.location..']]' or 'Любая') root:tag('div') :addClass('infobox-crop-h-section') :wikitext('Цена') local div2=root:tag('div') local item2_1=div2:tag('div') :addClass('item-spacing') :addClass('item-border') item2_1:tag('div') :addClass('item-label') :wikitext('Покупка') local buy=(arrDataid.buy and arrDataid.buy..' 15px' or (arrDataid.buyagro and arrDataid.buyagro..' 15px')) item2_1:tag('div') :addClass('item-data') :wikitext(buy) local item2_2=div2:tag('div') :addClass('item-spacing') :addClass('item-border') item2_2:tag('div') :addClass('item-label') :wikitext('Продажа') item2_2:tag('div') :addClass('item-data') :wikitext(arrDataid.sell and arrDataid.sell..' 15px' or ) root:tag('div') :addClass('infobox-crop-h-section') :wikitext('Доход') local div3=root:tag('div') local item3_1=div3:tag('div') :addClass('item-spacing') :addClass('item-border') item3_1:tag('div') :addClass('item-label') :wikitext('Доход в час') local rez= if arrDataid.tm and arrDataid.sell then rez=(math.floor(arrDataid.sell/arrDataid.tm*100)/100)..' 15px' else rez='' end item3_1:tag('div') :addClass('item-data') :wikitext(rez) return tostring(root) end function description() local root = mw.html.create( 'div' ) root:tag('h2') :wikitext('Описание') local nameprod=arrDataid.nameprod and arrDataid.nameprod or id root:tag('div') :css('float','left') :wikitext('50px') root:tag() :wikitext(' Дерево сажается один раз, а урожай с него можно собирать многократно. '.. ' Собрать урожай можно только после того, как он достигнет зрелости (100%). У каждого дерева свое индивидуальное время роста. Наведите курсор мышки на дерево и увидите, сколько времени осталось до сбора урожая. '.. ' Для сбора урожая щелкните мышкой по дереву, крона дерева изменится (станет чуть поменьше размером или опустеет), а плоды дерева автоматически переместятся на склад. '.. ' Собранный урожай можно продать, переработать на фабрике или скормить животным. ') if arrDataid.tm~=0 then local dvih=root:tag('div') :css('margin-bottom','10px') :wikitext('Время созревания плодов составляет �� '..arrDataid.tm..' час.') if arrDataid.sell then dvih:tag() :wikitext(' При этом ваш доход в час составит '.. (math.floor(arrDataid.sell/arrDataid.tm*100)/100).. ' 15px.') end end local tb=root:tag('table') :css('width','50%') :addClass('wikitable') local tr1 =tb:tag('tr') tr1:tag('td') :css('text-align','center') :wikitext('Покупка ('..id..')') tr1:tag('td') :css('text-align','center') :wikitext('Продажа ('..nameprod..')') local tr2 =tb:tag('tr') tr2:tag('td') :css('text-align','center') :css('font-size','20px') :css('color','#866505') :wikitext(arrDataid.buy and arrDataid.buy..' 15px' or (arrDataid.buyagro and arrDataid.buyagro..' 15px' or "")) tr2:tag('td') :css('text-align','center') :css('font-size','20px') :css('color','#866505') :wikitext(arrDataid.sell and arrDataid.sell..' 15px' or "") if (arrDataid.tm and arrDataid.buy and arrDataid.sell) then local ok='Покупка дерева окупится через '..(math.floor(arrDataid.buy/arrDataid.sell*arrDataid.tm/24*100)/100)..' дней, для этого нужно снять '..(math.floor(arrDataid.buy/arrDataid.sell*100)/100)..' урожаев.' root:tag('div') :wikitext(ok or ) end if arrDataid.buyagro and not arrDataid.buy then root:tag('div') :wikitext('Окупаемость дерева вычислить нельзя, т.к. дерево покупается за агробаксы.') end local text="" return tostring( root ) ..text end function getitems() local data={} local i=1 for key, v in pairs(arrData) do datai={name=v.name, tp=v.tp} datai.level=v.level and "c "..v.level.." ур. " or '' datai.buy=v.buy and v.buy or (v.buyagro and v.buyagro..' 15px' or '') datai.tm=v.tm and v.tm or '' datai.sell=v.sell and v.sell or '' datai.rez=(v.sell and v.tm) and (math.floor(v.sell/v.tm*100)/100) or '' datai.prod=v.nameprod and v.nameprod or v.name datai.location=v.location and ''..v.location..'' or 'Любые' datai.agronom=v.agronom and 'Домик агронома' or '' i=i+1 end table.sort(data,function( a, b ) return a.name < b.name end ) return data end --Карточка растения (дерево) новая-- function placeBuy() local root = mw.html.create( 'div' ) root:tag('h2'):wikitext('Место покупки растения') root:tag('div'):wikitext(arrDataid.agronom and agronom(id) or 'Саженцы этого дерева продается в Магазине.') return tostring(root) end function location() local text= text=" Где можно выращивать? " if arrDataid.location then text=text.." Локация: [["..arrDataid.location.."]] " else text=text..' Дерево "'..id..'" можно выращивать в любой локации. ' end text=text..' Посадить дерево можно в любой зоне: Поле, Промзона, Зона декора. ' return text end function del() local text='' text=" Перемещение и удаление дерева ".. " Если дерево мешает в том месте, где вы его посадили, его можно передвинуть на другое, более удобное место, или удалить с игрового поля. " if arrDataid.del then text=text..' При удалении дерева вы получаете '..arrDataid.del..' 15px. ' end return text.." " end function experience() local text="" if arrDataid.exper then local root = mw.html.create( 'div' ) root:tag('h2'):wikitext('Опыт') root:tag('div'):wikitext('За посадку и сбор урожая 1 дерева "'..id..'" начисляется опыт в размере '..arrDataid.exper..' . ') text=tostring(root) end return text end function medal() local root = mw.html.create( 'div' ) root:tag('h2'):wikitext('Медали') root:tag('div'):wikitext('За сбор урожая даются медали. Медали позволяют увеличить количество опыта за сбор 1 единицы растения. Чем больше урожая вы собираете, тем получаете больше медалей и опыта от сбора каждой единицы урожая. (Опыт, как вы помните, нужен для повышения игрового уровня).') return tostring(root) end function p.getView( frame ) id = frame.args1 nameprod=arrDataid.nameprod and arrDataid.nameprod or arrDataid.name return common.path(arrDataid.tp1, arrDataid.tp, id) .. infobox().. description().. placeBuy().. del().. location().. ' Загружается на фабрики '..(require("Module:Factory").fab(nameprod)).. ' Можно скормить животным '..(require("Module:Animal").fab(nameprod)).. experience().. medal().. 'Category:Деревья'.. '[[Category:'..arrDataid.tp..']]' end function agronom(id) --Подготовка списка с ценой продажи деревеьев-- local data={} local j for key, v in pairs(arrData) do j=v.nameprod and v.nameprod or v.name dataj={sell=v.sell,name=v.name} end local root = mw.html.create( 'div' ) root:tag('div') :wikitext('Семена этого растения создаются в Домике агронома.') if not pcall(function () if arrDataid.create nil then error() end end) then return tostring(root) end --Исследование семян----------------- root:tag('h3') :wikitext('Исследование семян') root:tag('div') :wikitext('Сначала в Домике агронома проводится исследование, для которого потребуется:') local t=root:tag( 'table' ) :addClass('article-table') :css('min-width', '400px') local name1 = arrDataid.create1.name or "" local name2 = arrDataid.create2.name or "" local name3 = arrDataid.create3.name or "" local t_tr1=t:tag('tr') t_tr1:tag('td') :css('min-width','100px') :css('text-align','center') :wikitext(dataname1.name and '[['..dataname1.name..'|'..name1..']]' or ''..name1..'') t_tr1:tag('td') :css('min-width','100px') :css('text-align','center') :wikitext(dataname2.name and '[['..dataname2.name..'|'..name2..']]' or ''..name2..'') t_tr1:tag('td') :css('min-width','100px') :css('text-align','center') :wikitext(''..name3..'') local t_tr2=t:tag('tr') t_tr2:tag('td') :css('text-align','center') :wikitext(' ') t_tr2:tag('td') :css('text-align','center') :wikitext(' ') t_tr2:tag('td') :css('text-align','center') :wikitext(' ') local t_tr3=t:tag('tr') t_tr3:tag('td') :css('text-align','center') :css('color','#267F00') :wikitext(arrDataid.create1.c.." шт. x "..dataname1.sell..' 15px = '..dataname1.sell*arrDataid.create1.c..' 15px') t_tr3:tag('td') :css('text-align','center') :css('color','#267F00') :wikitext(arrDataid.create2.c.." шт. x "..dataname2.sell..' 15px = '..dataname2.sell*arrDataid.create2.c..' 15px') t_tr3:tag('td') :css('text-align','center') :css('color','#267F00') :wikitext(arrDataid.create3.c.." шт.") root:tag( '' ) :wikitext(' Как видно из таблицы, первые два ингредиента для исследования ([['..data[arrDataid.create1.name].name..']] и [['..data[data[arrDataid.create2.name].name].name..']]) – это плоды деревьев. Найти плоды можно на складе (если, конечно, у вас на ферме посажены такие деревья). '.. ' Третий ингредиент для исследования – ([['..arrDataid.create3.name..']]) – материал. '.. ' Обычно материалы покупаются за агробаксы. Но материалы для исследования в Домике агронома можно также получить бесплатно у друзей. Для этого нажмите синий плюсик 15px в правом верхней углу картинки с материалом, откроется окошко с названием материала: '.. '[[Файл:'..arrDataid.create3.name..'material1.png|200px|center]]'.. ' нажмите в окошке кнопку «Попросить». После этого ваши друзья смогут совершенно бесплатно отправить вам необходимый материал. '.. ' Как только ваши друзья передадут вам достаточное количество материала, вместо синего плюсика в углу вы увидите зеленую галочку 15px. '.. ' Все ингредиенты собраны – можно начинать исследование. Нажмите на зеленую кнопку «Исследовать». '.. '200px|center'.. ' Время исследования: '..arrDataid.createtm..' час. '.. '200px|center'.. ' Исследование проводится только один раз - чтобы разблокировать создание семян. ') --Создание семян----------------- root:tag('h3') :wikitext('Создание семян') root:tag('div') :wikitext('Когда исследование закончено, можно начинать создавать семена. Для создания 1 единицы семян потребуется:') local t2=root:tag( 'table' ) :addClass('article-table') :css('min-width', '400px') local name1 = arrDataid.agronom1.name or "" local name2 = arrDataid.agronom2.name or "" local name3 = arrDataid.agronom3.name or "" local t2_tr1=t2:tag('tr') t2_tr1:tag('td') :css('min-width','100px') :css('text-align','center') :wikitext(dataname1.name and '[['..dataname1.name..'|'..name1..']]' or ''..name1..'') t2_tr1:tag('td') :css('min-width','100px') :css('text-align','center') :wikitext(dataname2.name and '[['..dataname2.name..'|'..name2..']]' or ''..name2..'') t2_tr1:tag('td') :css('min-width','100px') :css('text-align','center') :wikitext(''..name3..'') local t2_tr2=t2:tag('tr') t2_tr2:tag('td') :css('text-align','center') :wikitext(' ') t2_tr2:tag('td') :css('text-align','center') :wikitext(' ') t2_tr2:tag('td') :css('text-align','center') :wikitext(' ') local t2_tr3=t2:tag('tr') t2_tr3:tag('td') :css('text-align','center') :css('color','#267F00') :wikitext(arrDataid.agronom1.c.." шт. x "..dataname1.sell..' 15px = '..dataname1.sell*arrDataid.agronom1.c..' 15px') t2_tr3:tag('td') :css('text-align','center') :css('color','#267F00') :wikitext(arrDataid.agronom2.c.." шт. x "..dataname2.sell..' 15px = '..dataname2.sell*arrDataid.agronom2.c..' 15px') t2_tr3:tag('td') :css('text-align','center') :css('color','#267F00') :wikitext(arrDataid.agronom3.c.." шт.") root:tag( '' ) :wikitext(' Первые ингредиента ('..arrDataid.agronom1.name..' и '..arrDataid.agronom2.name..') можно посадить у себя на ферме. '.. ' Третий ингредиент - '..arrDataid.agronom3.name..' покупается за агробаксы. '.. ' Когда все ингредиенты собраны можно создавать семена. Нажмите на кнопку "Произвести" и получите 1 шт. растения. '.. '200px|center'.. ' Созданные семена вы найдете на складе в разделе "Вещи". ') return tostring(root) end -- function gal() -- return ' Галерея '..require("Module:Gallery").Gallery(id..'agronom',3) -- end --Временная страница для контроля загрузки фоток-- function p.photo() local data=getitems() local total=0 local text='' for i, v in ipairs(data) do text=text.."".. ""..v.name.."".. " ".. "".." ".."".. "".." ".."".. "".." ".."".. "".. "50px".. "".. "".. "50px".. "".. "".. "50px".. "".. "".. "50px".. "".. "".. "50px".. "".."" end return " ".. " ".. " Имя ".. " прод ".. " big ".. " tree ".. " вуд ".. " бронза ".. " сер ".. " зол ".. " пл ".. " алм ".. " "..text.. " " end return p